// pages/activity/activity.js
var app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    startDate: new Date('1900-01-01'),
    uploadUrl: 'upload.uploadPic',
    activity_id: '',
    types: {
      "88": 'diyusername',
      "99": 'diypassword',
      "0": 'diyinput',
      "1": 'diytextarea',
      "3": 'diycheckbox',
      "4": 'diyradio',
      "2": 'diyselect',
      "7": 'diydate',
      "9": 'diycity',
      "5": 'diyimage',
    },
    thumb: "",
    conference: {},
    form_id: '',
    diyform: {},
    diydata: [],
    intro: false,
    //地区
    provinceData: [],
    cityData: [],
    districtData: [],
    pickerValue: [0, 0, 0],
    selectAddressData: [],
    currentDate: new Date().getTime(),
    isValidation: true,
    nosubmit: true,
    is_enrol:0,
    imgPath: app.globalData.imgPath
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let scene = decodeURIComponent(options.scene);

    // 扫码进入
    if (scene) {
      let info_arr = [];
      info_arr = scene.split(',');
      for (let i = 0; i < info_arr.length; i++) {
        let chil_arr = [];
        chil_arr = info_arr[i].split('=');
        if (chil_arr[0] == 'id') {
          this.setData({
            activity_id: chil_arr[1]
          });
        }
      }
    }

    // 点击进入
    if (options.id) {
      this.setData({
        activity_id: options.id
      });
    }
    if (!this.data.activity_id) {
      wx.showToast({
        title: '活动不存在！',
        icon: 'none',
        duration: 1500,
        success: function () {
          setTimeout(function () {
            //要延时执行的代码
            wx.redirectTo({
              url: '/packageA/member/conferenceList/conferenceList'
            });
          }, 1500); //延迟时间
        },
      });
    }
    //加载地址数据初始化
    this._initAddressInfo();
    this.getActivity();
  },
  onRead_1(e) {
    try {
      let diydata = this.data.diydata;
      let index = e.currentTarget.dataset.idex;
      if (diydata[index].type == "diyimage") {
        if (diydata[index].imgUrls.length >= diydata[index].data.tp_max) {
          wx.showToast({
            title: `最多只能上传${diydata[index].data.tp_max}张`,
            icon: 'none',
            duration: 1000
          });
          return;
        }
      }
      // for (var i = 0; i < diydata.length; i++){
      //   if(diydata[i].type == "diyimage"){
      //     if(diydata[i].imgUrls.length >= diydata[i].data.tp_max){
      //       wx.showToast({
      //         title: `最多只能上传${diydata[i].data.tp_max}张`,
      //         icon:'none',
      //         duration:1000
      //       })
      //       return
      //     }
      //   }
      // }
      // console.log(this.data.diydata)
    } catch (err) {
      console.log(err);
    }
    let name = e.currentTarget.dataset.name;
    this.setData({
      setname: name
    });
    let that = this;
    let urlStr = app.getNetAddresss(this.data.uploadUrl);
    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success(res) {
        const tempFilePaths = res.tempFilePaths;
        wx.compressImage({
          src: tempFilePaths[0], // 图片路径
          quality: 60, // 压缩质量
          success(e) {
            // console.log(e)
            let photourl = e.tempFilePath;

            wx.uploadFile({
              url: urlStr,
              filePath: photourl,
              name: 'file',
              formData: {
                attach: that.data.setname
              },
              success(resdata) {
                var res = JSON.parse(resdata.data);
                console.log(res);
                if (res.result == 1) {
                  let diydata = that.data.diydata;
                  console.log(res);
                  for (var i = 0; i < diydata.length; i++) {
                    if (diydata[i].name == res.data.attach) {
                      diydata[i].imgUrls.push(res.data.img_url);
                    }
                  }
                  that.setData({
                    diydata: diydata
                  });
                  console.log(that.data.diydata);
                } else {
                  wx.showToast({
                    icon: 'none',
                    title: res.msg,
                    duration: 1500
                  });
                }
              }
            });
          },
          fail(e) {
            console.log(e);
          },
          complete(e) {

          }
        });
      }
    });
  },
  removeImg: function (e) {
    let delIndex = e.currentTarget.dataset.indexc;
    let index_1 = e.currentTarget.dataset.index;
    let diydata = this.data.diydata;
    diydata[index_1].imgUrls.splice(delIndex, 1);
    this.setData({
      diydata: diydata
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },
  onShareTimeline(){
    return{
      title:this.data.conference.title ? this.data.conference.title : '活动',
      query:"id="+this.data.activity_id
    };
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return{
      title:this.data.conference.title ? this.data.conference.title : '活动',
      path:"/packageB/conference/activity/activity?id="+this.data.activity_id
    };
  },
  getActivity() {
    let that = this;
    let urlStr = app.getNetAddresss("plugin.conference.api.conference-activity.get-activity-detail");
    urlStr += '&id=' + this.data.activity_id;
    app._getNetWork({
      url: urlStr,
      success: function (resdata) {
        var res = resdata.data;
        if (res.result == 1) {
          if (res.data.is_end == 1) {
            wx.showToast({
              title: '来晚了,活动已结束！',
              icon: 'none',
              duration: 1500,
              success: function () {
                setTimeout(function () {
                  //要延时执行的代码
                  wx.redirectTo({
                    url: '/packageA/member/conferenceList/conferenceList'
                  });
                }, 1500); //延迟时间
              },
            });
            return;
          }
          
          that.setData({
            thumb: res.data.thumb,
            conference: res.data,
            form_id: res.data.form_id,
          });
          wx.setNavigationBarTitle({
            title: that.data.conference.title ? that.data.conference.title : '活动'
          });    
          that.getForm();
          if(res.data.is_enrol == 1){
            that.setData({
              is_enrol:res.data.is_enrol
            });
            wx.showToast({
              title: '您已报名该活动！',
              icon:'none'
            });
            return;
          }
        } else {
          wx.showToast({
            icon: 'none',
            title: res.msg,
            duration: 1500
          });
        }
      },
      fail: function (res) {
        console.log(res);
      }
    });
  },
  goDetail(){
    wx.navigateTo({
      url: '/packageB/conference/myActivityInfo/myActivityInfo?id='+this.data.activity_id,
    });
  },
  getForm() {
    let that = this;
    let urlStr = app.getNetAddresss("plugin.diyform.api.diy-form.get-diy-form-by-id");
    urlStr += '&form_id=' + this.data.form_id;
    app._getNetWork({
      url: urlStr,
      success: function (resdata) {
        var res = resdata.data;
        var f = {};
        if (res.result == 1) {
          that.setData({
            diyform: res.data
          });
          let fields = that.data.diyform.fields;
          let diydata = that.data.diydata;
          for (var field in fields) {
            if (that.data.types[fields[field].data_type] == 'diycheckbox') {
              f = {
                name: field,
                data: fields[field],
                value: [],
                type: that.data.types[fields[field].data_type],
              };
            } else if (that.data.types[fields[field].data_type] == 'diydate') {
              f = {
                name: field,
                data: fields[field],
                value: '',
                type: that.data.types[fields[field].data_type],
              };

            } else if (that.data.types[fields[field].data_type] == 'diyselect') {
              let tp_textArr = [];
              for (let i = 0; i < fields[field].tp_text.length; i++) {
                tp_textArr.push({
                  name: fields[field].tp_text[i]
                });
              }

              f = {
                name: field,
                data: fields[field],
                value: '',
                type: that.data.types[fields[field].data_type],
                diysishow: false,
                sitem: tp_textArr
              };
            } else if (that.data.types[fields[field].data_type] == 'diycity') {
              f = {
                name: field,
                data: fields[field],
                value: '',
                type: that.data.types[fields[field].data_type],
                showAdd: false
              };

            } else if (that.data.types[fields[field].data_type] == 'diyimage') {
              f = {
                name: field,
                data: fields[field],
                imgUrls: fields[field].value ? fields[field].value : [],
                isPhoto: false,
                type: that.data.types[fields[field].data_type],
              };

            } else {
              f = {
                name: field,
                data: fields[field],
                value: '',
                type: that.data.types[fields[field].data_type],
              };
            }
            diydata.push(f);
            that.setData({
              diydata: diydata
            });
            console.log(that.data.diydata);
          }

        }
      },
      fail: function (res) {
        console.log(res);
      }
    });
  },
  showIntro() {
    this.setData({
      intro: true
    });
  },
  showIntroClose() {
    this.setData({
      intro: false
    });
  },
  //自定义表单值绑定
  tpnameinp(e) {
    let val = e.detail.value;
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].value"]: val
    });
  },
  diytextareainp(e) {
    let val = e.detail.value;
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].value"]: val
    });
  },
  checkboxinp(e) {
    let val = e.detail;
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].value"]: val
    });
  },
  diyselectBtn(e) {
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].diysishow"]: true
    });
  },
  sitemClose(e) {
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].diysishow"]: false
    });
  },
  sitemSelectBtn(e) {
    let idx = e.currentTarget.dataset.idex;
    let val = e.detail.name;
    this.setData({
      ["diydata[" + idx + "].value"]: val,
      ["diydata[" + idx + "].diysishow"]: false
    });
  },
  raidinp(e) {
    let val = e.detail;
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].value"]: val
    });
  },
  // 关闭选择收货地址
  _closeDateLw: function (e) {
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].showAdd"]: false
    });
  },
  //地址选择器数据初始化
  _initAddressInfo: function () {
    var that = this;
    var _keyName = 'provinceData';
    wx.getStorage({
      key: _keyName,
      success: function (res) {
        console.log("地址信息准备就绪");
        that._getProvinceData();
      },
      fail: function (res) {
        console.log("省fail");
        app._getNetWork({
          url: app.getNetAddresss("member.member-address.address"),
          success: function (res) {
            var response = res.data;
            var province = response.data.province;
            var city = response.data.city;
            var district = response.data.district;
            wx.setStorage({
              key: 'provinceData',
              data: province
            });
            wx.setStorage({
              key: 'cityData',
              data: city
            });
            wx.setStorage({
              key: 'districtData',
              data: district
            });
            that._initAddressInfo();
          },
          fail: function (res) {},
          state: true
        });
      }
    });
  },
  // 读取省key
  _getProvinceData: function () {
    var that = this;
    var _keyName = 'provinceData';
    wx.getStorage({
      key: _keyName,
      success: function (res) {
        console.log("省读取成功", res.data);
        that.setData({
          provinceData: res.data
        });
        that.setData({
          "selectAddressData[0].name": res.data[that.data.pickerValue[0]].areaname,
          "selectAddressData[0].id": res.data[that.data.pickerValue[0]].id,
          "selectAddressData[0].index": that.data.pickerValue[0]
        });
        that._getCityData();
      }
    });
  },
  // 读取城市key，筛选城市data
  _getCityData: function () {
    var _data = this.data.selectAddressData[0];
    console.log("城市", "_data", _data);
    var that = this;
    var _keyName = 'cityData';
    wx.getStorage({
      key: _keyName,
      success: function (res) {
        console.log("城市读取成功", res);

        var _json = [];
        for (var i = 0; i < res.data.length; i++) {
          if (res.data[i].parentid == _data.id) {
            _json.push(res.data[i]);
          }
        }
        console.log("城市数据筛选", _json);
        that.setData({
          cityData: _json
        });
        that.setData({
          "selectAddressData[1].name": _json[that.data.pickerValue[1]].areaname,
          "selectAddressData[1].id": _json[that.data.pickerValue[1]].id,
          "selectAddressData[1].index": that.data.pickerValue[1]
        });
        that._getDistrictData();
      }
    });
  },
  // 读取地区key，筛选地区data
  _getDistrictData: function () {
    var _data = this.data.selectAddressData[1];
    console.log("地区", "_data", _data);
    console.log(_data);
    var that = this;
    var _keyName = 'districtData';
    wx.getStorage({
      key: _keyName,
      success: function (res) {
        console.log("地区读取成功");
        var _json = [];
        for (var i = 0; i < res.data.length; i++) {
          if (res.data[i].parentid == _data.id) {
            _json.push(res.data[i]);
          }
        }
        console.log("地区数据筛选", _json);
        that.setData({
          districtData: _json
        });
        console.log("districtData", _json);
        that.setData({
          "selectAddressData[2].name": _json[that.data.pickerValue[2]].areaname,
          "selectAddressData[2].id": _json[that.data.pickerValue[2]].id,
          "selectAddressData[2].index": that.data.pickerValue[2]
        });
        console.log("over", that.data.selectAddressData);
      }
    });
  },
  // 收货地址滚动事件
  bindChange: function (e) {
    var val = e.detail.value;
    if (this.data.pickerValue[0] != val[0]) {
      val[1] = 0;
      val[2] = 0;
    }
    if (this.data.pickerValue[1] != val[1]) {
      val[2] = 0;
    }
    this.setData({
      "pickerValue[0]": val[0],
      "pickerValue[1]": val[1],
      "pickerValue[2]": val[2]
    });
    this._initAddressInfo();
  },
  //城市结果
  resultAdd: function (e) {
    let idx = e.currentTarget.dataset.idex;
    let seleData = this.data.selectAddressData;
    let retCity = seleData[0].name + ' ' + seleData[1].name + ' ' + seleData[2].name;
    this.setData({
      ["diydata[" + idx + "].value"]: retCity,
      ["diydata[" + idx + "].showAdd"]: false
    });
  },
  //自定义日期选择
  openPicker(e) {
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].timeShow"]: true
    });
  },
  PickerClose(e) {
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].timeShow"]: false
    });
  },
  PickerChange(event) {
    let idx = event.currentTarget.dataset.idex;
    let time = event.detail;
    this.setData({
      ["diydata[" + idx + "].currentDate"]: time
    });
  },
  birthdayconfirm(e) {
    let idx = e.currentTarget.dataset.idex;
    let time = e.detail;
    let changtime = this.timestampToTime(time);
    this.setData({
      ["diydata[" + idx + "].value"]: changtime,
      ["diydata[" + idx + "].timeShow"]: false
    });
  },
  timestampToTime(timestamp) {
    var date = new Date(timestamp); //时间戳为10位需*1000，时间戳为13位的话不需乘1000
    var Y = date.getFullYear() + '-';
    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
    var D = date.getDate();
    return Y + M + D;
  },
  submit() {
    let refs = this.selectComponent('.diyfrom');
    refs.submit();
  },
  dfsave(e) {
    this.setData({
      formData: e.detail
    });
    this.submitConference();
  },
  submitConference() {
    let that = this;
    let urlStr = app.getNetAddresss("plugin.conference.api.conference-activity.save-enrol");
    urlStr += '&conference_id=' + this.data.activity_id;
    app._getNetWork({
      url: urlStr,
      success: function (resdata) {
        var res = resdata.data;
        if (res.result == 1) {
          var enrol_id = res.data.enrol_id;
          that.submitForm(enrol_id);
        } else {
          wx.showToast({
            icon: 'none',
            title: res.msg,
            duration: 1500
          });
          wx.redirectTo({
            url: '/packageA/member/conferenceList/conferenceList'
          });
        }
      },
      fail: function (res) {
        console.log(res);
      }
    });
  },
  submitForm(enrol_id) {
    let that = this;
    let formData = [];
    let formObject = {};
    this.data.diydata.forEach(item => {
      if (item.type == 'diyimage') {
        formObject[item.name] = item.imgUrls;
      } else {
        formObject[item.name] = item.value;
      }

    });
    console.log(formObject, this.data.diydata);
    formData.push(formObject);
    let json = {
      form_data: this.data.formData,
      form_id: this.data.form_id,
    };
    let urlStr = app.getNetAddresss("plugin.diyform.api.diy-form.save-diy-form-data");
    app._postNetWork({
      url: urlStr,
      showToastIn: false,
      data: json,
      success: function (resdata) {
        var res = resdata.data;
        if (res.result == 1) {
          var form_data_id = res.data.form_data_id;
          that.submitEnro(enrol_id, form_data_id);
        } else {
          wx.showToast({
            icon: 'none',
            title: res.msg,
            duration: 1500
          });
        }

      },
      fail: function (res) {}
    });
  },
  submitEnro(enrol_id, form_data_id) {
    let urlStr = app.getNetAddresss("plugin.conference.api.conference-activity.save-enrol-end");
    let json = {
      enrol_id: enrol_id,
      form_data_id: form_data_id,
    };
    app._postNetWork({
      url: urlStr,
      showToastIn: false,
      data: json,
      success: (resdata) => {
        var res = resdata.data;
        if (res.result == 1) {
          wx.showToast({
            title: '报名成功',
            icon: 'none',
            duration: 1500,
            success: function () {
              setTimeout(function () {
                //要延时执行的代码
                wx.redirectTo({
                  url: '/packageA/member/conferenceList/conferenceList'
                });
              }, 1500); //延迟时间
            },
          });
        }
      },
      fail: function (res) {}
    });
  },
  //自定义日期选择
  showAddBtn(e) {
    let idx = e.currentTarget.dataset.idex;
    this.setData({
      ["diydata[" + idx + "].showAdd"]: true
    });
  },
});